Micron Document
rns.moscow πŸŸ₯ [git]

Node / public / RNode_Flasher / files / htdocs / stats / index.html

Displaying Raw β€’ Download

htdocs/stats/index.html main (f370d156) Text, 15.64 KB

Tff7b72<!DOCTYPE html>
Tb4b4b4<Tff7b72html Te6edf3langTff7b72=Ta5d6ff"ru"Tb4b4b4>
Tb4b4b4<Tff7b72headTb4b4b4>
Tb4b4b4<Tff7b72meta Te6edf3charsetTff7b72=Ta5d6ff"UTF-8"Tb4b4b4>
Tb4b4b4<Tff7b72meta Te6edf3nameTff7b72=Ta5d6ff"viewport" Te6edf3contentTff7b72=Ta5d6ff"width=device-width, initial-scale=1.0"Tb4b4b4>
Tb4b4b4<Tff7b72meta Te6edf3nameTff7b72=Ta5d6ff"description" Te6edf3contentTff7b72=Ta5d6ff"RNode Flasher β€” flash statistics."Tb4b4b4>
Tb4b4b4<Tff7b72titleTb4b4b4>Flash Statistics β€” RNS.MOSCOWTb4b4b4<Tb4b4b4/Tff7b72titleTb4b4b4>
Tb4b4b4<Tff7b72link Te6edf3relTff7b72=Ta5d6ff"preconnect" Te6edf3hrefTff7b72=Ta5d6ff"https://fonts.googleapis.com"Tb4b4b4>
Tb4b4b4<Tff7b72link Te6edf3relTff7b72=Ta5d6ff"preconnect" Te6edf3hrefTff7b72=Ta5d6ff"https://fonts.gstatic.com" Te6edf3crossoriginTb4b4b4>
Tb4b4b4<Tff7b72link Te6edf3hrefTff7b72=Ta5d6ff"https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,300;0,400;0,500;0,700;1,400&display=swap" Te6edf3relTff7b72=Ta5d6ff"stylesheet"Tb4b4b4>
Tb4b4b4<Tff7b72link Te6edf3relTff7b72=Ta5d6ff"icon" Te6edf3hrefTff7b72=Ta5d6ff"/favicon.ico"Tb4b4b4>
Tb4b4b4<Tff7b72link Te6edf3relTff7b72=Ta5d6ff"stylesheet" Te6edf3hrefTff7b72=Ta5d6ff"/style.css"Tb4b4b4>
Tb4b4b4<Tff7b72script Te6edf3srcTff7b72=Ta5d6ff"/js/i18n.js"Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
Tb4b4b4<Tff7b72styleTb4b4b4>
Tb4b4b4.T56d364stats-panel Tb4b4b4{ Tff7b72margin-bottomTb4b4b4: T79c0ff20Tffa657pxTb4b4b4; Tb4b4b4}
Tb4b4b4.T56d364stats-total Tb4b4b4{
Tff7b72paddingTb4b4b4: T79c0ff20Tffa657px T79c0ff16Tffa657pxTb4b4b4;
Tff7b72text-alignTb4b4b4: Tff7b72centerTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364stats-total-num Tb4b4b4{
Tff7b72font-sizeTb4b4b4: T79c0ff2.4Tffa657remTb4b4b4;
Tff7b72font-weightTb4b4b4: T79c0ff700Tb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--green-brightTb4b4b4)Tb4b4b4;
Tff7b72line-heightTb4b4b4: T79c0ff1.2Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364stats-total-label Tb4b4b4{
Tff7b72font-sizeTb4b4b4: T79c0ff0.72Tffa657remTb4b4b4;
Tff7b72letter-spacingTb4b4b4: T79c0ff0.1Tffa657emTb4b4b4;
Tff7b72text-transformTb4b4b4: Tff7b72uppercaseTb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--text-dimTb4b4b4)Tb4b4b4;
Tff7b72margin-topTb4b4b4: T79c0ff4Tffa657pxTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364stats-table Tb4b4b4{ Tff7b72widthTb4b4b4: T79c0ff100Tffa657%Tb4b4b4; Tff7b72border-collapseTb4b4b4: Tff7b72collapseTb4b4b4; Tb4b4b4}
Tb4b4b4.T56d364stats-table Tff7b72thTff7b72, Tb4b4b4.T56d364stats-table Tff7b72td Tb4b4b4{
Tff7b72text-alignTb4b4b4: Tff7b72leftTb4b4b4;
Tff7b72paddingTb4b4b4: T79c0ff8Tffa657px T79c0ff16Tffa657pxTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.78Tffa657remTb4b4b4;
Tff7b72border-bottomTb4b4b4: T79c0ff1Tffa657px Tff7b72solid Td2a8ffvarTb4b4b4(Te6edf3--borderTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364stats-table Tff7b72th Tb4b4b4{
Tff7b72font-sizeTb4b4b4: T79c0ff0.65Tffa657remTb4b4b4;
Tff7b72letter-spacingTb4b4b4: T79c0ff0.08Tffa657emTb4b4b4;
Tff7b72text-transformTb4b4b4: Tff7b72uppercaseTb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--text-mutedTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364stats-table Tff7b72trTb4b4b4:Tf0883elast-child Tff7b72td Tb4b4b4{ Tff7b72border-bottomTb4b4b4: Tff7b72noneTb4b4b4; Tb4b4b4}
Tb4b4b4.T56d364stats-table Tff7b72tdTb4b4b4.T56d364num Tb4b4b4{ Tff7b72text-alignTb4b4b4: Tff7b72rightTb4b4b4; Tff7b72font-weightTb4b4b4: T79c0ff600Tb4b4b4; Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--text-brightTb4b4b4)Tb4b4b4; Tff7b72white-spaceTb4b4b4: Tff7b72nowrapTb4b4b4; Tb4b4b4}
Tb4b4b4.T56d364stats-variant-row Tff7b72tdTb4b4b4:Tf0883efirst-child Tb4b4b4{ Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--text-dimTb4b4b4)Tb4b4b4; Tff7b72padding-leftTb4b4b4: T79c0ff32Tffa657pxTb4b4b4; Tb4b4b4}
Tb4b4b4.T56d364stats-platform-badge Tb4b4b4{
Tff7b72font-sizeTb4b4b4: T79c0ff0.6Tffa657remTb4b4b4;
Tff7b72letter-spacingTb4b4b4: T79c0ff0.05Tffa657emTb4b4b4;
Tff7b72text-transformTb4b4b4: Tff7b72uppercaseTb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--text-mutedTb4b4b4)Tb4b4b4;
Tff7b72margin-leftTb4b4b4: T79c0ff6Tffa657pxTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364stats-msg Tb4b4b4{ Tff7b72paddingTb4b4b4: T79c0ff24Tffa657px T79c0ff16Tffa657pxTb4b4b4; Tff7b72text-alignTb4b4b4: Tff7b72centerTb4b4b4; Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--text-dimTb4b4b4)Tb4b4b4; Tff7b72font-sizeTb4b4b4: T79c0ff0.78Tffa657remTb4b4b4; Tb4b4b4}
Tb4b4b4.T56d364stats-back Tb4b4b4{ Tff7b72displayTb4b4b4: Tff7b72inline-blockTb4b4b4; Tff7b72margin-topTb4b4b4: T79c0ff18Tffa657pxTb4b4b4; Tff7b72font-sizeTb4b4b4: T79c0ff0.78Tffa657remTb4b4b4; Tb4b4b4}

Tb4b4b4.T56d364log-filter Tb4b4b4{
Tff7b72displayTb4b4b4: Tff7b72flexTb4b4b4;
Tff7b72flex-wrapTb4b4b4: Tff7b72wrapTb4b4b4;
Tff7b72align-itemsTb4b4b4: Tff7b72centerTb4b4b4;
Tff7b72gapTb4b4b4: T79c0ff6Tffa657pxTb4b4b4;
Tff7b72paddingTb4b4b4: T79c0ff10Tffa657px T79c0ff16Tffa657pxTb4b4b4;
Tff7b72border-bottomTb4b4b4: T79c0ff1Tffa657px Tff7b72solid Td2a8ffvarTb4b4b4(Te6edf3--borderTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364log-filter-presets Tb4b4b4{ Tff7b72displayTb4b4b4: Tff7b72flexTb4b4b4; Tff7b72gapTb4b4b4: T79c0ff6Tffa657pxTb4b4b4; Tb4b4b4}
Tb4b4b4.T56d364log-filter-range Tb4b4b4{
Tff7b72displayTb4b4b4: Tff7b72flexTb4b4b4;
Tff7b72align-itemsTb4b4b4: Tff7b72centerTb4b4b4;
Tff7b72gapTb4b4b4: T79c0ff6Tffa657pxTb4b4b4;
Tff7b72margin-leftTb4b4b4: Tff7b72autoTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.7Tffa657remTb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--text-dimTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364log-filter-range Tff7b72inputTff7b72[Tff7b72typeTff7b72=Ta5d6ff"date"Tff7b72] Tb4b4b4{
Tff7b72font-familyTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--fontTb4b4b4)Tb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.7Tffa657remTb4b4b4;
Tff7b72backgroundTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--bg-monitorTb4b4b4)Tb4b4b4;
Tff7b72borderTb4b4b4: T79c0ff1Tffa657px Tff7b72solid Td2a8ffvarTb4b4b4(Te6edf3--borderTb4b4b4)Tb4b4b4;
Tff7b72border-radiusTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--radiusTb4b4b4)Tb4b4b4;
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--textTb4b4b4)Tb4b4b4;
Tff7b72paddingTb4b4b4: T79c0ff4Tffa657px T79c0ff6Tffa657pxTb4b4b4;
Tff7b72color-schemeTb4b4b4: Tff7b72inheritTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364log-filter-range Tff7b72inputTff7b72[Tff7b72typeTff7b72=Ta5d6ff"date"Tff7b72]Tb4b4b4:Tf0883efocus Tb4b4b4{ Tff7b72border-colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--green-dimTb4b4b4)Tb4b4b4; Tff7b72outlineTb4b4b4: Tff7b72noneTb4b4b4; Tb4b4b4}
Tb4b4b4.T56d364log-body Tb4b4b4{
Tff7b72max-heightTb4b4b4: T79c0ff420Tffa657pxTb4b4b4;
Tff7b72overflow-yTb4b4b4: Tff7b72autoTb4b4b4;
Tff7b72paddingTb4b4b4: T79c0ff12Tffa657px T79c0ff16Tffa657pxTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff0.75Tffa657remTb4b4b4;
Tff7b72line-heightTb4b4b4: T79c0ff1.8Tb4b4b4;
Tff7b72backgroundTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--bg-monitorTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364log-ts Tb4b4b4{
Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--text-mutedTb4b4b4)Tb4b4b4;
Tff7b72flex-shrinkTb4b4b4: T79c0ff0Tb4b4b4;
Tff7b72white-spaceTb4b4b4: Tff7b72preTb4b4b4;
Tff7b72font-variant-numericTb4b4b4: Te6edf3tabular-numsTb4b4b4;
Tff7b72margin-rightTb4b4b4: T79c0ff10Tffa657pxTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364log-note Tb4b4b4{ Tff7b72paddingTb4b4b4: T79c0ff8Tffa657px T79c0ff16Tffa657pxTb4b4b4; Tff7b72font-sizeTb4b4b4: T79c0ff0.68Tffa657remTb4b4b4; Tff7b72colorTb4b4b4: Td2a8ffvarTb4b4b4(Te6edf3--text-mutedTb4b4b4)Tb4b4b4; Tff7b72font-styleTb4b4b4: Tff7b72italicTb4b4b4; Tff7b72border-topTb4b4b4: T79c0ff1Tffa657px Tff7b72solid Td2a8ffvarTb4b4b4(Te6edf3--borderTb4b4b4)Tb4b4b4; Tb4b4b4}
Tb4b4b4<Tb4b4b4/Tff7b72styleTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72headTb4b4b4>
Tb4b4b4<Tff7b72bodyTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3idTff7b72=Ta5d6ff"app"Tb4b4b4>

Tb4b4b4<Tff7b72nav Te6edf3idTff7b72=Ta5d6ff"navbar"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"nav-inner"Tb4b4b4>
Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://rns.moscow" Te6edf3classTff7b72=Ta5d6ff"nav-logo"Tb4b4b4>
Tb4b4b4<Tff7b72img Te6edf3classTff7b72=Ta5d6ff"logo-icon" Te6edf3srcTff7b72=Ta5d6ff"/reticulum_logo_512.png" Te6edf3widthTff7b72=Ta5d6ff"28" Te6edf3heightTff7b72=Ta5d6ff"28" Te6edf3altTff7b72=Ta5d6ff"RNS"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"logo-text"Tb4b4b4>RNS.MOSCOWTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"nav-subtitle"Tb4b4b4>// STATSTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"/" Te6edf3classTff7b72=Ta5d6ff"nav-git-link" Te6edf3idTff7b72=Ta5d6ff"navFlasherLink"Tb4b4b4>FlasherTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>
Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://git.rns.moscow/explore/repos" Te6edf3targetTff7b72=Ta5d6ff"_blank" Te6edf3relTff7b72=Ta5d6ff"noopener" Te6edf3classTff7b72=Ta5d6ff"nav-git-link"Tb4b4b4>GitTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3classTff7b72=Ta5d6ff"theme-toggle" Te6edf3idTff7b72=Ta5d6ff"themeToggle" Te6edf3titleTff7b72=Ta5d6ff"Toggle theme"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3idTff7b72=Ta5d6ff"themeIcon"Tb4b4b4>Te6edf3&#9728;Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"lang-toggle"Tb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3classTff7b72=Ta5d6ff"lang-btn" Te6edf3idTff7b72=Ta5d6ff"langRu"Tb4b4b4>RUTb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"lang-sep"Tb4b4b4>|Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3classTff7b72=Ta5d6ff"lang-btn" Te6edf3idTff7b72=Ta5d6ff"langEn"Tb4b4b4>ENTb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72navTb4b4b4>

Tb4b4b4<Tff7b72mainTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"container"Tb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flasher-header"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"header-prefix" Te6edf3idTff7b72=Ta5d6ff"statsSubtitle"Tb4b4b4>// statsTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72h1 Te6edf3classTff7b72=Ta5d6ff"header-title" Te6edf3idTff7b72=Ta5d6ff"statsTitle"Tb4b4b4>>_ Flash StatisticsTb4b4b4<Tb4b4b4/Tff7b72h1Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"header-desc" Te6edf3idTff7b72=Ta5d6ff"statsDesc"Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"panel stats-panel"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"stats-total"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"stats-total-num" Te6edf3idTff7b72=Ta5d6ff"totalNum"Tb4b4b4>β€”Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"stats-total-label" Te6edf3idTff7b72=Ta5d6ff"totalLabel"Tb4b4b4>total flashedTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"panel stats-panel"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"panel-title" Te6edf3idTff7b72=Ta5d6ff"deviceTableTitle"Tb4b4b4>by device Te6edf3&amp; variantTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3idTff7b72=Ta5d6ff"tableWrap"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"stats-msg" Te6edf3idTff7b72=Ta5d6ff"statsMsg"Tb4b4b4>loading...Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"panel stats-panel"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"panel-title" Te6edf3idTff7b72=Ta5d6ff"logTitle"Tb4b4b4>flash logTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"log-filter"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"log-filter-presets"Tb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3classTff7b72=Ta5d6ff"btn-sm" Te6edf3idTff7b72=Ta5d6ff"presetDay"Tb4b4b4>DayTb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3classTff7b72=Ta5d6ff"btn-sm" Te6edf3idTff7b72=Ta5d6ff"presetWeek"Tb4b4b4>WeekTb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3classTff7b72=Ta5d6ff"btn-sm" Te6edf3idTff7b72=Ta5d6ff"presetMonth"Tb4b4b4>MonthTb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3classTff7b72=Ta5d6ff"btn-sm" Te6edf3idTff7b72=Ta5d6ff"presetYear"Tb4b4b4>YearTb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"log-filter-range"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3idTff7b72=Ta5d6ff"rangeFromLabel"Tb4b4b4>fromTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72input Te6edf3typeTff7b72=Ta5d6ff"date" Te6edf3idTff7b72=Ta5d6ff"rangeFrom"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3idTff7b72=Ta5d6ff"rangeToLabel"Tb4b4b4>toTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72input Te6edf3typeTff7b72=Ta5d6ff"date" Te6edf3idTff7b72=Ta5d6ff"rangeTo"Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"log-body" Te6edf3idTff7b72=Ta5d6ff"logBody"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"stats-msg" Te6edf3idTff7b72=Ta5d6ff"logMsg"Tb4b4b4>loading...Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"log-note" Te6edf3idTff7b72=Ta5d6ff"logNote" Te6edf3styleTff7b72=Ta5d6ff"display:none;"Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"/" Te6edf3classTff7b72=Ta5d6ff"stats-back" Te6edf3idTff7b72=Ta5d6ff"backLink"Tb4b4b4>← back to flasherTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>

Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72mainTb4b4b4>

Tb4b4b4<Tff7b72footerTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"container footer-inner"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"logo-text" Te6edf3styleTff7b72=Ta5d6ff"color:var(--green-dim);font-size:0.9rem;"Tb4b4b4>RNS.MOSCOWTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"footer-copy"Tb4b4b4>
Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://flasher.rns.moscow/firmware/" Te6edf3targetTff7b72=Ta5d6ff"_blank" Te6edf3relTff7b72=Ta5d6ff"noopener" Te6edf3idTff7b72=Ta5d6ff"footerFirmwareLink"Tb4b4b4>firmwareTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> Te6edf3&nbsp;Β·Te6edf3&nbsp;
Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://git.rns.moscow/explore/repos" Te6edf3targetTff7b72=Ta5d6ff"_blank" Te6edf3relTff7b72=Ta5d6ff"noopener" Te6edf3idTff7b72=Ta5d6ff"footerSourceLink"Tb4b4b4>sourceTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72footerTb4b4b4>

Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72scriptTb4b4b4>
Tb4b4b4(Tff7b72functionTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// ── theme ────────────────────────────────────────────────
Tff7b72var Te6edf3savedTheme Tff7b72= Te6edf3localStorageTb4b4b4.Te6edf3getItemTb4b4b4(Ta5d6ff'theme'Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3theme Tff7b72= Te6edf3savedTheme Tff7b72|| Tb4b4b4(Tffa657windowTb4b4b4.Te6edf3matchMediaTb4b4b4(Ta5d6ff'(prefers-color-scheme: light)'Tb4b4b4)Tb4b4b4.Te6edf3matches Tff7b72? Ta5d6ff'light' Tff7b72: Ta5d6ff'dark'Tb4b4b4)Tb4b4b4;
Tff7b72function Te6edf3applyThemeTb4b4b4(Te6edf3tTb4b4b4) Tb4b4b4{
Te6edf3theme Tff7b72= Te6edf3tTb4b4b4;
Tffa657documentTb4b4b4.Te6edf3documentElementTb4b4b4.Te6edf3setAttributeTb4b4b4(Ta5d6ff'data-theme'Tb4b4b4, Te6edf3tTb4b4b4)Tb4b4b4;
Te6edf3localStorageTb4b4b4.Te6edf3setItemTb4b4b4(Ta5d6ff'theme'Tb4b4b4, Te6edf3tTb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'themeIcon'Tb4b4b4)Tb4b4b4.Te6edf3innerHTML Tff7b72= Te6edf3t Tff7b72=== Ta5d6ff'dark' Tff7b72? Ta5d6ff'&#9728;' Tff7b72: Ta5d6ff'&#9790;'Tb4b4b4;
Tb4b4b4}
Te6edf3applyThemeTb4b4b4(Te6edf3themeTb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'themeToggle'Tb4b4b4)Tb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff'click'Tb4b4b4, Tff7b72functionTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3applyThemeTb4b4b4(Te6edf3theme Tff7b72=== Ta5d6ff'dark' Tff7b72? Ta5d6ff'light' Tff7b72: Ta5d6ff'dark'Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

T8b949e// ── lang ─────────────────────────────────────────────────
Tff7b72var Te6edf3savedLang Tff7b72= Te6edf3localStorageTb4b4b4.Te6edf3getItemTb4b4b4(Ta5d6ff'lang'Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3lang Tff7b72= Tb4b4b4(Te6edf3savedLang Tff7b72=== Ta5d6ff'ru' Tff7b72|| Te6edf3savedLang Tff7b72=== Ta5d6ff'en'Tb4b4b4) Tff7b72? Te6edf3savedLang Tff7b72:
Tb4b4b4(Tb4b4b4(Tb4b4b4(Te6edf3navigatorTb4b4b4.Te6edf3languages Tff7b72&& Te6edf3navigatorTb4b4b4.Te6edf3languagesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4) Tff7b72|| Te6edf3navigatorTb4b4b4.Te6edf3language Tff7b72|| Ta5d6ff''Tb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff'ru'Tb4b4b4) Tff7b72? Ta5d6ff'ru' Tff7b72: Ta5d6ff'en'Tb4b4b4)Tb4b4b4;

Tff7b72function Te6edf3renderStringsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tffa657windowTb4b4b4.Te6edf3setLangTb4b4b4(Te6edf3langTb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3title Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.title'Tb4b4b4) Tff7b72+ Ta5d6ff' β€” RNS.MOSCOW'Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'statsSubtitle'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff'// ' Tff7b72+ Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.title'Tb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'statsTitle'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff'>_ ' Tff7b72+ Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.title'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'statsDesc'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.subtitle'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'totalLabel'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.total'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'deviceTableTitle'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.device'Tb4b4b4) Tff7b72+ Ta5d6ff' / ' Tff7b72+ Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.variant'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'backLink'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.back'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'navFlasherLink'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'nav.flasher'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'footerFirmwareLink'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'footer.firmware'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'footerSourceLink'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'footer.source'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'logTitle'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.log'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'presetDay'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.filter.day'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'presetWeek'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.filter.week'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'presetMonth'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.filter.month'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'presetYear'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.filter.year'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'rangeFromLabel'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.filter.from'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'rangeToLabel'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.filter.to'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'langRu'Tb4b4b4)Tb4b4b4.Te6edf3classListTb4b4b4.Te6edf3toggleTb4b4b4(Ta5d6ff'active'Tb4b4b4, Te6edf3lang Tff7b72=== Ta5d6ff'ru'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'langEn'Tb4b4b4)Tb4b4b4.Te6edf3classListTb4b4b4.Te6edf3toggleTb4b4b4(Ta5d6ff'active'Tb4b4b4, Te6edf3lang Tff7b72=== Ta5d6ff'en'Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3documentElementTb4b4b4.Te6edf3lang Tff7b72= Te6edf3langTb4b4b4;
Te6edf3renderTableTb4b4b4(Te6edf3lastDataTb4b4b4)Tb4b4b4;
Te6edf3renderLogTb4b4b4(Te6edf3lastLogDataTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3setLangTb4b4b4(Te6edf3lTb4b4b4) Tb4b4b4{
Te6edf3lang Tff7b72= Te6edf3lTb4b4b4;
Te6edf3localStorageTb4b4b4.Te6edf3setItemTb4b4b4(Ta5d6ff'lang'Tb4b4b4, Te6edf3lTb4b4b4)Tb4b4b4;
Te6edf3renderStringsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'langRu'Tb4b4b4)Tb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff'click'Tb4b4b4, Tff7b72functionTb4b4b4(Tb4b4b4) Tb4b4b4{ Te6edf3setLangTb4b4b4(Ta5d6ff'ru'Tb4b4b4)Tb4b4b4; Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'langEn'Tb4b4b4)Tb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff'click'Tb4b4b4, Tff7b72functionTb4b4b4(Tb4b4b4) Tb4b4b4{ Te6edf3setLangTb4b4b4(Ta5d6ff'en'Tb4b4b4)Tb4b4b4; Tb4b4b4}Tb4b4b4)Tb4b4b4;

T8b949e// ── data ─────────────────────────────────────────────────
Tff7b72var Te6edf3lastData Tff7b72= Tff7b72nullTb4b4b4;

Tff7b72function Te6edf3escTb4b4b4(Te6edf3sTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3d Tff7b72= Tffa657documentTb4b4b4.Te6edf3createElementTb4b4b4(Ta5d6ff'div'Tb4b4b4)Tb4b4b4;
Te6edf3dTb4b4b4.Te6edf3textContent Tff7b72= Tffa657StringTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3dTb4b4b4.Te6edf3innerHTMLTb4b4b4;
Tb4b4b4}

Tff7b72function Te6edf3renderTableTb4b4b4(Te6edf3dataTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3wrap Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'tableWrap'Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3dataTb4b4b4) Tb4b4b4{
Te6edf3wrapTb4b4b4.Te6edf3innerHTML Tff7b72= Ta5d6ff'<div class="stats-msg">' Tff7b72+ Te6edf3escTb4b4b4(Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.loading'Tb4b4b4)Tb4b4b4) Tff7b72+ Ta5d6ff'</div>'Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'totalNum'Tb4b4b4)Tb4b4b4.Te6edf3textContent Tff7b72= Te6edf3dataTb4b4b4.Te6edf3totalTb4b4b4.Te6edf3toLocaleStringTb4b4b4(Te6edf3lang Tff7b72=== Ta5d6ff'ru' Tff7b72? Ta5d6ff'ru-RU' Tff7b72: Ta5d6ff'en-US'Tb4b4b4)Tb4b4b4;

Tff7b72if Tb4b4b4(Tff7b72!Te6edf3dataTb4b4b4.Te6edf3by_variantTb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Te6edf3wrapTb4b4b4.Te6edf3innerHTML Tff7b72= Ta5d6ff'<div class="stats-msg">' Tff7b72+ Te6edf3escTb4b4b4(Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.empty'Tb4b4b4)Tb4b4b4) Tff7b72+ Ta5d6ff'</div>'Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}

T8b949e// group variant rows under their device
Tff7b72var Te6edf3byDevice Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Te6edf3dataTb4b4b4.Te6edf3by_variantTb4b4b4.Te6edf3forEachTb4b4b4(Tff7b72functionTb4b4b4(Te6edf3rowTb4b4b4) Tb4b4b4{
Tb4b4b4(Te6edf3byDeviceTb4b4b4[Te6edf3rowTb4b4b4.Te6edf3deviceTb4b4b4] Tff7b72= Te6edf3byDeviceTb4b4b4[Te6edf3rowTb4b4b4.Te6edf3deviceTb4b4b4] Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3pushTb4b4b4(Te6edf3rowTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Tff7b72var Te6edf3html Tff7b72= Ta5d6ff'<table class="stats-table"><thead><tr>' Tff7b72+
Ta5d6ff'<th>' Tff7b72+ Te6edf3escTb4b4b4(Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.device'Tb4b4b4)Tb4b4b4) Tff7b72+ Ta5d6ff'</th>' Tff7b72+
Ta5d6ff'<th class="num">' Tff7b72+ Te6edf3escTb4b4b4(Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.count'Tb4b4b4)Tb4b4b4) Tff7b72+ Ta5d6ff'</th>' Tff7b72+
Ta5d6ff'</tr></thead><tbody>'Tb4b4b4;

Te6edf3dataTb4b4b4.Te6edf3by_deviceTb4b4b4.Te6edf3forEachTb4b4b4(Tff7b72functionTb4b4b4(Te6edf3devTb4b4b4) Tb4b4b4{
Te6edf3html Tff7b72+= Ta5d6ff'<tr><td>' Tff7b72+ Te6edf3escTb4b4b4(Te6edf3devTb4b4b4.Te6edf3deviceTb4b4b4) Tff7b72+ Ta5d6ff'</td><td class="num">' Tff7b72+ Te6edf3devTb4b4b4.Te6edf3countTb4b4b4.Te6edf3toLocaleStringTb4b4b4(Te6edf3lang Tff7b72=== Ta5d6ff'ru' Tff7b72? Ta5d6ff'ru-RU' Tff7b72: Ta5d6ff'en-US'Tb4b4b4) Tff7b72+ Ta5d6ff'</td></tr>'Tb4b4b4;
Tb4b4b4(Te6edf3byDeviceTb4b4b4[Te6edf3devTb4b4b4.Te6edf3deviceTb4b4b4] Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3forEachTb4b4b4(Tff7b72functionTb4b4b4(Te6edf3vTb4b4b4) Tb4b4b4{
Te6edf3html Tff7b72+= Ta5d6ff'<tr class="stats-variant-row"><td>' Tff7b72+ Te6edf3escTb4b4b4(Te6edf3vTb4b4b4.Te6edf3variantTb4b4b4) Tff7b72+
Ta5d6ff'<span class="stats-platform-badge">' Tff7b72+ Te6edf3escTb4b4b4(Te6edf3vTb4b4b4.Te6edf3platformTb4b4b4) Tff7b72+ Ta5d6ff'</span></td>' Tff7b72+
Ta5d6ff'<td class="num">' Tff7b72+ Te6edf3vTb4b4b4.Te6edf3countTb4b4b4.Te6edf3toLocaleStringTb4b4b4(Te6edf3lang Tff7b72=== Ta5d6ff'ru' Tff7b72? Ta5d6ff'ru-RU' Tff7b72: Ta5d6ff'en-US'Tb4b4b4) Tff7b72+ Ta5d6ff'</td></tr>'Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3html Tff7b72+= Ta5d6ff'</tbody></table>'Tb4b4b4;
Te6edf3wrapTb4b4b4.Te6edf3innerHTML Tff7b72= Te6edf3htmlTb4b4b4;
Tb4b4b4}

T8b949e// ── log + date filter ───────────────────────────────────
Tff7b72var Te6edf3lastLogData Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72var Te6edf3activePreset Tff7b72= Tff7b72nullTb4b4b4; T8b949e// 'day' | 'week' | 'month' | 'year' | null (custom range)

Tff7b72function Te6edf3pad2Tb4b4b4(Te6edf3nTb4b4b4) Tb4b4b4{ Tff7b72return Te6edf3n Tff7b72< T79c0ff10 Tff7b72? Ta5d6ff'0' Tff7b72+ Te6edf3n Tff7b72: Tffa657StringTb4b4b4(Te6edf3nTb4b4b4)Tb4b4b4; Tb4b4b4}
Tff7b72function Te6edf3formatTsTb4b4b4(Te6edf3tsTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3d Tff7b72= Tff7b72new Tffa657DateTb4b4b4(Te6edf3ts Tff7b72* T79c0ff1000Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3dTb4b4b4.Te6edf3getFullYearTb4b4b4(Tb4b4b4) Tff7b72+ Ta5d6ff'-' Tff7b72+ Te6edf3pad2Tb4b4b4(Te6edf3dTb4b4b4.Te6edf3getMonthTb4b4b4(Tb4b4b4) Tff7b72+ T79c0ff1Tb4b4b4) Tff7b72+ Ta5d6ff'-' Tff7b72+ Te6edf3pad2Tb4b4b4(Te6edf3dTb4b4b4.Te6edf3getDateTb4b4b4(Tb4b4b4)Tb4b4b4) Tff7b72+
Ta5d6ff' ' Tff7b72+ Te6edf3pad2Tb4b4b4(Te6edf3dTb4b4b4.Te6edf3getHoursTb4b4b4(Tb4b4b4)Tb4b4b4) Tff7b72+ Ta5d6ff':' Tff7b72+ Te6edf3pad2Tb4b4b4(Te6edf3dTb4b4b4.Te6edf3getMinutesTb4b4b4(Tb4b4b4)Tb4b4b4) Tff7b72+ Ta5d6ff':' Tff7b72+ Te6edf3pad2Tb4b4b4(Te6edf3dTb4b4b4.Te6edf3getSecondsTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3dateInputValueTb4b4b4(Te6edf3dTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3dTb4b4b4.Te6edf3getFullYearTb4b4b4(Tb4b4b4) Tff7b72+ Ta5d6ff'-' Tff7b72+ Te6edf3pad2Tb4b4b4(Te6edf3dTb4b4b4.Te6edf3getMonthTb4b4b4(Tb4b4b4) Tff7b72+ T79c0ff1Tb4b4b4) Tff7b72+ Ta5d6ff'-' Tff7b72+ Te6edf3pad2Tb4b4b4(Te6edf3dTb4b4b4.Te6edf3getDateTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72function Te6edf3renderLogTb4b4b4(Te6edf3dataTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3body Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'logBody'Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3note Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'logNote'Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3dataTb4b4b4) Tb4b4b4{
Te6edf3bodyTb4b4b4.Te6edf3innerHTML Tff7b72= Ta5d6ff'<div class="stats-msg">' Tff7b72+ Te6edf3escTb4b4b4(Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.loading'Tb4b4b4)Tb4b4b4) Tff7b72+ Ta5d6ff'</div>'Tb4b4b4;
Te6edf3noteTb4b4b4.Te6edf3styleTb4b4b4.Te6edf3display Tff7b72= Ta5d6ff'none'Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3dataTb4b4b4.Te6edf3eventsTb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Te6edf3bodyTb4b4b4.Te6edf3innerHTML Tff7b72= Ta5d6ff'<div class="stats-msg">' Tff7b72+ Te6edf3escTb4b4b4(Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.log.empty'Tb4b4b4)Tb4b4b4) Tff7b72+ Ta5d6ff'</div>'Tb4b4b4;
Te6edf3noteTb4b4b4.Te6edf3styleTb4b4b4.Te6edf3display Tff7b72= Ta5d6ff'none'Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3html Tff7b72= Ta5d6ff''Tb4b4b4;
Te6edf3dataTb4b4b4.Te6edf3eventsTb4b4b4.Te6edf3forEachTb4b4b4(Tff7b72functionTb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3html Tff7b72+= Ta5d6ff'<div class="log-line info"><span class="log-pfx log-ts">' Tff7b72+ Te6edf3escTb4b4b4(Te6edf3formatTsTb4b4b4(Te6edf3eTb4b4b4.Te6edf3tsTb4b4b4)Tb4b4b4) Tff7b72+ Ta5d6ff'</span>' Tff7b72+
Ta5d6ff'<span class="log-txt">' Tff7b72+ Te6edf3escTb4b4b4(Te6edf3eTb4b4b4.Te6edf3deviceTb4b4b4) Tff7b72+ Ta5d6ff' β€” ' Tff7b72+ Te6edf3escTb4b4b4(Te6edf3eTb4b4b4.Te6edf3variantTb4b4b4) Tff7b72+
Ta5d6ff'<span class="stats-platform-badge">' Tff7b72+ Te6edf3escTb4b4b4(Te6edf3eTb4b4b4.Te6edf3platformTb4b4b4) Tff7b72+ Ta5d6ff'</span></span></div>'Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3bodyTb4b4b4.Te6edf3innerHTML Tff7b72= Te6edf3htmlTb4b4b4;

Tff7b72if Tb4b4b4(Te6edf3dataTb4b4b4.Te6edf3truncatedTb4b4b4) Tb4b4b4{
Te6edf3noteTb4b4b4.Te6edf3textContent Tff7b72= Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.log.truncated'Tb4b4b4)Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff'{n}'Tb4b4b4, Te6edf3dataTb4b4b4.Te6edf3eventsTb4b4b4.Te6edf3lengthTb4b4b4)Tb4b4b4;
Te6edf3noteTb4b4b4.Te6edf3styleTb4b4b4.Te6edf3display Tff7b72= Ta5d6ff''Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3noteTb4b4b4.Te6edf3styleTb4b4b4.Te6edf3display Tff7b72= Ta5d6ff'none'Tb4b4b4;
Tb4b4b4}
Tb4b4b4}

Tff7b72function Te6edf3fetchLogTb4b4b4(Tff7b72fromTb4b4b4, Te6edf3toTb4b4b4) Tb4b4b4{
Te6edf3renderLogTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3fetchTb4b4b4(Ta5d6ff'/api/log.php?from=' Tff7b72+ Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Tff7b72fromTb4b4b4) Tff7b72+ Ta5d6ff'&to=' Tff7b72+ Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3toTb4b4b4)Tb4b4b4)
Tb4b4b4.Te6edf3thenTb4b4b4(Tff7b72functionTb4b4b4(Te6edf3rTb4b4b4) Tb4b4b4{ Tff7b72if Tb4b4b4(Tff7b72!Te6edf3rTb4b4b4.Te6edf3okTb4b4b4) Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff'HTTP ' Tff7b72+ Te6edf3rTb4b4b4.Te6edf3statusTb4b4b4)Tb4b4b4; Tff7b72return Te6edf3rTb4b4b4.Te6edf3jsonTb4b4b4(Tb4b4b4)Tb4b4b4; Tb4b4b4}Tb4b4b4)
Tb4b4b4.Te6edf3thenTb4b4b4(Tff7b72functionTb4b4b4(Te6edf3dataTb4b4b4) Tb4b4b4{ Te6edf3lastLogData Tff7b72= Te6edf3dataTb4b4b4; Te6edf3renderLogTb4b4b4(Te6edf3dataTb4b4b4)Tb4b4b4; Tb4b4b4}Tb4b4b4)
Tb4b4b4.Tff7b72catchTb4b4b4(Tff7b72functionTb4b4b4(Tb4b4b4) Tb4b4b4{
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'logBody'Tb4b4b4)Tb4b4b4.Te6edf3innerHTML Tff7b72= Ta5d6ff'<div class="stats-msg">' Tff7b72+ Te6edf3escTb4b4b4(Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.error'Tb4b4b4)Tb4b4b4) Tff7b72+ Ta5d6ff'</div>'Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'logNote'Tb4b4b4)Tb4b4b4.Te6edf3styleTb4b4b4.Te6edf3display Tff7b72= Ta5d6ff'none'Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72function Te6edf3setActivePresetTb4b4b4(Te6edf3presetTb4b4b4) Tb4b4b4{
Te6edf3activePreset Tff7b72= Te6edf3presetTb4b4b4;
Tb4b4b4[Ta5d6ff'Day'Tb4b4b4, Ta5d6ff'Week'Tb4b4b4, Ta5d6ff'Month'Tb4b4b4, Ta5d6ff'Year'Tb4b4b4]Tb4b4b4.Te6edf3forEachTb4b4b4(Tff7b72functionTb4b4b4(Te6edf3pTb4b4b4) Tb4b4b4{
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'preset' Tff7b72+ Te6edf3pTb4b4b4)Tb4b4b4.Te6edf3classListTb4b4b4.Te6edf3toggleTb4b4b4(Ta5d6ff'active'Tb4b4b4, Te6edf3pTb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4) Tff7b72=== Te6edf3presetTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72var Te6edf3PRESET_SECONDS Tff7b72= Tb4b4b4{ Te6edf3dayTff7b72: T79c0ff86400Tb4b4b4, Te6edf3weekTff7b72: T79c0ff7 Tff7b72* T79c0ff86400Tb4b4b4, Te6edf3monthTff7b72: T79c0ff30 Tff7b72* T79c0ff86400Tb4b4b4, Te6edf3yearTff7b72: T79c0ff365 Tff7b72* T79c0ff86400 Tb4b4b4}Tb4b4b4;
Tff7b72function Te6edf3applyPresetTb4b4b4(Te6edf3presetTb4b4b4) Tb4b4b4{
Te6edf3setActivePresetTb4b4b4(Te6edf3presetTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3to Tff7b72= Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4) Tff7b72/ T79c0ff1000Tb4b4b4;
Tff7b72var Tff7b72from Tff7b72= Te6edf3to Tff7b72- Te6edf3PRESET_SECONDSTb4b4b4[Te6edf3presetTb4b4b4]Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'rangeFrom'Tb4b4b4)Tb4b4b4.Te6edf3value Tff7b72= Te6edf3dateInputValueTb4b4b4(Tff7b72new Tffa657DateTb4b4b4(Tff7b72from Tff7b72* T79c0ff1000Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'rangeTo'Tb4b4b4)Tb4b4b4.Te6edf3value Tff7b72= Te6edf3dateInputValueTb4b4b4(Tff7b72new Tffa657DateTb4b4b4(Te6edf3to Tff7b72* T79c0ff1000Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3fetchLogTb4b4b4(Tff7b72fromTb4b4b4, Te6edf3toTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tb4b4b4[Ta5d6ff'Day'Tb4b4b4, Ta5d6ff'Week'Tb4b4b4, Ta5d6ff'Month'Tb4b4b4, Ta5d6ff'Year'Tb4b4b4]Tb4b4b4.Te6edf3forEachTb4b4b4(Tff7b72functionTb4b4b4(Te6edf3pTb4b4b4) Tb4b4b4{
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'preset' Tff7b72+ Te6edf3pTb4b4b4)Tb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff'click'Tb4b4b4, Tff7b72functionTb4b4b4(Tb4b4b4) Tb4b4b4{ Te6edf3applyPresetTb4b4b4(Te6edf3pTb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4; Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Tff7b72function Te6edf3applyCustomRangeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3fromVal Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'rangeFrom'Tb4b4b4)Tb4b4b4.Te6edf3valueTb4b4b4;
Tff7b72var Te6edf3toVal Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'rangeTo'Tb4b4b4)Tb4b4b4.Te6edf3valueTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3fromVal Tff7b72|| Tff7b72!Te6edf3toValTb4b4b4) Tff7b72returnTb4b4b4;
Te6edf3setActivePresetTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72var Tff7b72from Tff7b72= Tff7b72new Tffa657DateTb4b4b4(Te6edf3fromVal Tff7b72+ Ta5d6ff'T00:00:00'Tb4b4b4)Tb4b4b4.Te6edf3getTimeTb4b4b4(Tb4b4b4) Tff7b72/ T79c0ff1000Tb4b4b4;
Tff7b72var Te6edf3to Tff7b72= Tff7b72new Tffa657DateTb4b4b4(Te6edf3toVal Tff7b72+ Ta5d6ff'T23:59:59'Tb4b4b4)Tb4b4b4.Te6edf3getTimeTb4b4b4(Tb4b4b4) Tff7b72/ T79c0ff1000Tb4b4b4;
Te6edf3fetchLogTb4b4b4(Tff7b72fromTb4b4b4, Te6edf3toTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'rangeFrom'Tb4b4b4)Tb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff'change'Tb4b4b4, Te6edf3applyCustomRangeTb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'rangeTo'Tb4b4b4)Tb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff'change'Tb4b4b4, Te6edf3applyCustomRangeTb4b4b4)Tb4b4b4;

Te6edf3renderStringsTb4b4b4(Tb4b4b4)Tb4b4b4;

Te6edf3fetchTb4b4b4(Ta5d6ff'/api/stats.php'Tb4b4b4)
Tb4b4b4.Te6edf3thenTb4b4b4(Tff7b72functionTb4b4b4(Te6edf3rTb4b4b4) Tb4b4b4{ Tff7b72if Tb4b4b4(Tff7b72!Te6edf3rTb4b4b4.Te6edf3okTb4b4b4) Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff'HTTP ' Tff7b72+ Te6edf3rTb4b4b4.Te6edf3statusTb4b4b4)Tb4b4b4; Tff7b72return Te6edf3rTb4b4b4.Te6edf3jsonTb4b4b4(Tb4b4b4)Tb4b4b4; Tb4b4b4}Tb4b4b4)
Tb4b4b4.Te6edf3thenTb4b4b4(Tff7b72functionTb4b4b4(Te6edf3dataTb4b4b4) Tb4b4b4{ Te6edf3lastData Tff7b72= Te6edf3dataTb4b4b4; Te6edf3renderTableTb4b4b4(Te6edf3dataTb4b4b4)Tb4b4b4; Tb4b4b4}Tb4b4b4)
Tb4b4b4.Tff7b72catchTb4b4b4(Tff7b72functionTb4b4b4(Tb4b4b4) Tb4b4b4{
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff'tableWrap'Tb4b4b4)Tb4b4b4.Te6edf3innerHTML Tff7b72= Ta5d6ff'<div class="stats-msg">' Tff7b72+ Te6edf3escTb4b4b4(Tffa657windowTb4b4b4.Te6edf3tTb4b4b4(Ta5d6ff'stats.error'Tb4b4b4)Tb4b4b4) Tff7b72+ Ta5d6ff'</div>'Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3applyPresetTb4b4b4(Ta5d6ff'month'Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>

Tb4b4b4<Tb4b4b4/Tff7b72bodyTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72htmlTb4b4b4>

Served by rngit 1.4.2 - Generated in 0.07s